// // 导入 @@hapi/jo
// const joi = require("@hapi/joi");

// const userSchema = {
//   // 2.1 校验 req.body 中的数据
//   body: {
//     username: Joi.string().alphanum().min(3).max(12).required(),
//     password: Joi.string()
//       .pattern(/^[\S]{6,15}$/)
//       .required()
//   }
// };

// module.exports = userSchema;

const joi = require("@hapi/joi");

// 用户名的验证规则
const username = joi.string().alphanum().min(1).max(10).required();
// 密码的验证规则
const password = joi
  .string()
  .pattern(/^[\S]{6,12}$/)
  .required();

// 注册和登录表单的验证规则对象
exports.reg_login_schema = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    username,
    password
  }
};

exports.update_userInfo_schema = {
  body: {
    id: joi.number().integer().min(1).required(),
    nickname: joi.string().required(),
    email: joi.string().email().required()
  }
};

// 验证规则对象 - 重置密码
exports.update_password_schema = {
  body: {
    // 使用 password 这个规则，验证 req.body.oldPwd 的值
    oldPwd: password,
    // 使用 joi.not(joi.ref('oldPwd')).concat(password) 规则，验证 req.body.newPwd 的值
    // 解读：
    // 1. joi.ref('oldPwd') 表示 newPwd 的值必须和 oldPwd 的值保持一致
    // 2. joi.not(joi.ref('oldPwd')) 表示 newPwd 的值不能等于 oldPwd 的值
    // 3. .concat() 用于合并 joi.not(joi.ref('oldPwd')) 和 password 这两条验证规则
    newPwd: joi.not(joi.ref("oldPwd")).concat(password)
  }
};

// 头像的验证规则
exports.update_avatar_schema = {
  body: {
    avatar: joi.string().dataUri().required()
  }
}